#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>
using namespace std;
int m, n, x, y;
int dx[2] = { 1,0 };
int dy[2] = { 0,1 };
bool vis[21][21];
int ret = 0;
void dfs(int i, int j)
{
    if (i == m && j == n)
    {
        ret++;
        return;
    }
    vis[i][j] = true;
    for (int k = 0; k < 2; k++)
    {
        int a = i + dx[k], b = j + dy[k];
        if (a >= 0 && a <= m && b >= 0 && b <= n  && !vis[a][b])
        {
            if ((abs(a - x) + abs(b - y) == 3) && (a == x || b == y)&&!(x==a&&b==y))
                dfs(a, b);
            else if (!(abs(a - x) + abs(b - y) == 3))
                dfs(a, b);
        }
    }
    vis[i][j] = false;
}
int main()
{
    cin >> m >> n >> x >> y;
    dfs(0, 0);
    cout << ret;
    return 0;
}